home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / BOOTING.TXT next >
Text File  |  1996-06-28  |  19KB  |  515 lines

  1. Fri Jun 28 18:55:07 PDT 1996
  2.  
  3. This file contains some helpful (hopefully! :^) information on what to do if
  4. your Linux system won't boot properly.
  5.  
  6. Section 1: What to do if after the installation process, the machine will 
  7.            not boot.
  8.  
  9. This problem is not uncommon.  The reason for it is that the kernel your system
  10. tries to boot after installation is not the same as the one used to install (the
  11. bootdisk kernel).  Typically the kernel that is installed to your hard drive 
  12. will contain more device drivers, and sometimes one of them won't like some 
  13. piece of hardware in your machine.
  14.  
  15. There are a couple of approaches that can be used to deal with this situation.
  16. Perhaps the simplest solution is to open up the machine and pull any cards that
  17. aren't crucial, and then try to reboot the system.  If this is successful, then
  18. follow the instructions in the FAQ.TXT for building and installing a kernel
  19. that is customized for your hardware.
  20.  
  21. Another approach (that doesn't involve opening the machine) is to try to use the
  22. bootdisk you installed with to kickstart the system.  To do this, boot the disk
  23. and then use the "mount" option to have the kernel boot the root partition on
  24. your hard drive rather that a root/install disk.  Let's assume your root Linux
  25. partition is on /dev/hda2.  To boot the system, you'd use this command at the
  26. LILO prompt on the bootdisk:
  27.  
  28. mount root=/dev/hda2
  29.  
  30.  
  31. Section 2:  Trying to get the kernel to detect hardware.
  32.  
  33. The first thing you should do is make sure you're using a kernel that supports
  34. the hardware you're trying to use.  If it doesn't, you've got a few options for
  35. how to add the support.  You can compile a custom kernel of your own, or you
  36. can look for an appropriate pre-compiled kernel in the /kernels directory.
  37. Another approach is to try loading a kernel module to add the extra support you
  38. need.  This is usually the fastest and easiest way to get a device working, so
  39. you might want to try it first.  Use 'vi' (or some other editor) to edit the
  40. file /etc/rc.d/rc.modules.  Look for a module that supports the hardware you
  41. want to get working, remove the '#' from the beginning of the line, and fill in
  42. any extra parameters that the module might require.
  43.  
  44. If you install a new kernel, be sure to reinstall LILO afterwards (if you use 
  45. it).  For more details on installing a kernel, see the FAQ.TXT.
  46.  
  47. There are a number of extra parameters that can be used on the LILO bootdisk
  48. prompt, with Loadlin, or in your /etc/lilo.conf.  These flags help tell the
  49. kernel which I/O port, IRQ, and so forth, that a particular piece of hardware
  50. uses, so that if the kernel doesn't see a peripheral while autoscanning you
  51. should be able to force detection by telling the kernel exactly where to look.
  52.  
  53. To use an extra flag with a bootdisk, put the flags after the standard command
  54. used to boot the system.  So, to boot /dev/hda2 and try to force detection of
  55. a Mitsumi CD-ROM drive with Mitsumi interface card, you might use something
  56. like this at the LILO prompt:
  57.  
  58. mount root=/dev/hda2 mcd=0x300,11
  59.  
  60. To use a parameter with Loadlin, just add it to the end of the boot command
  61. in a similar fashion:
  62.  
  63. loadlin vmlinuz root=/dev/hda2 mcd=0x300,11
  64.  
  65. Or, you can enclose the parameters in an append="" and add the line to your
  66. /etc/lilo.conf.  Don't forget to reinstall lilo after editing the i
  67. /etc/lilo.conf.  To do this, just type "lilo" as root.
  68.  
  69. Here's how the line you'd add to your /etc/lilo.conf looks:
  70.  
  71. append="mcd=0x300,11"
  72.  
  73. Here is a list of known kernel parameters from the Loadlin documentation:
  74.  
  75.     LOADLIN 1.5 ((C) 1994 lermen@elserv.ffm.fgan.de)
  76.      and
  77.     Linux version: 0.99.14, 0.99.15, 1.0, 1.1.47
  78.  
  79. This is a list of command line parameters recognized and interpreted by:
  80. ========================================================================
  81.  
  82.   1. LOADLIN
  83.        ramdisk=size        (size in Kbytes)
  84.      or
  85.        ramdisk=size,no     (same as above, but diskchange prompt disabled)
  86.                            e.g.:  ramdisk=1440,no
  87.        vga=mode
  88.  
  89.   2. The Linux kernel
  90.        mem=number       (for > 0.99.15,  number = end of physical memory in bytes)
  91.        root=device
  92.        ro
  93.        rw
  94.        no387
  95.        debug            sets console_loglevel = 10
  96.        no-hlt           disables check of HLT isntruction at startup
  97.  
  98.   3. init
  99.        single
  100.        auto
  101.        ro,rw,no387   (forwarded from the kernel)
  102.  
  103.   4. Some drivers
  104.        reserve=port1,num1,...,port5,num5 #reserves 80x86 ioports
  105.        ether=irq,base_addr,mem_start,mem_end,dev_name
  106.        hd=cyl,head,sect                  # for 2 drives you need this twice
  107.                                          # first relates to drive 0
  108.        bmouse=irq
  109.        max_scsi_luns=n                          # (n should be between 1 and 8)
  110.        st0x=base_address,irq                    # SEAGATE controller ST01/ST02
  111.        tmc8xx=base_address,irq                  # Future Domain TMC-885,TMC-950
  112.        t128=address,irq                         # Trantor T128/T128F/T228
  113.        ncr5380=port,irq,dma                     # Generic NCR5380 driver
  114.        aha152x=portbase,irq,scsiid,reconnect    # Adaptec AHA-152x driver
  115.        cdu31a=portbase,irq,PAS                  # Sony CDU-31a.  Third parameter
  116.                          # should be "PAS" if on a Pro-Audio Spectrum, or 
  117.                          # nothing if on something else.
  118.        xd=type,irq,iobase,dma
  119.        mcd=port,irq
  120.        sound=0x0TTPPPID, ..
  121.        sbpcd=sbport,SoundBlaster
  122.        sbpcd=LMport,LaserMate
  123.        sbpcd=SpeaFXport,SPEA
  124.  
  125.  
  126.   5. Environment
  127.        All parameters of format  name=xxxx  which are not recogized by
  128.        the kernel or a driver are put onto the environment.
  129.  
  130.        LOADLIN itself always puts  BOOT_IMAGE=imagefile  onto the environ-
  131.        ment.  The user may put additional values onto the environment in
  132.        order to allow  /etc/rc  to behave differently for a given condition.
  133.  
  134.  
  135. ==============================================================================
  136.  
  137. Following are detailed descriptions:
  138.  
  139.  
  140. Parameters recognized by LOADLIN:
  141. =================================
  142.  
  143.   root=device
  144.   -----------
  145.         device     may be a symbolic device name such as "/dev/hda2"
  146.                    or the numeric device number (hex)
  147.                    (highbyte=major, lowbyte=minor)
  148.                    recognized symbolic devices (with their partitions) are:
  149.                    "hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde",
  150.                    "fd", "xda", "xdb"
  151.  
  152.         There is a problem:
  153.  
  154.         Linus interprets the number following "/dev/hda" as a HEX number,
  155.         The device names in  /dev  of the Slackware distribution, however,
  156.         are numbered /dev/hda1 .. hda9 .. hda10 .. hda16,
  157.         instead of   /dev/hda1 .. hda9 .. hdaa ..  hdaf  as Linus would have done.
  158.  
  159.         So, starting with version 1.3 of LOADLIN, I interpret the root device
  160.         myself and pass the device numerically in the boot sector.
  161.         My naming convention is a compromise which I hope will result in
  162.         fewer irritations:
  163.  
  164.         If the number following "/dev/hda, hdb, sda ..."
  165.         starts with 0, 0x or a..f, it is interpreted as a HEX number.
  166.         If it starts with 1..9 it is interpreted as a decimal number.
  167.         If none is appropriate, the string is passed to the command line.
  168.         (some later kernel versions may have other device names).
  169.  
  170.         Examples:
  171.         root=302
  172.         root=0x201
  173.         root=/dev/hda2
  174.         root=/dev/sdaa   same as  root=/dev/sda10  or  /dev/sda0xa
  175.  
  176.   Ramdisk size option (used with 1.2.x kernels)
  177.  
  178.   ramdisk=size 
  179.   ------------
  180.         size      number of Kbytes for the RAMDISK device.
  181.                   The image for the ramdisk is loaded by the
  182.                   kernel at startup from a floppy drive, if
  183.                   root=/dev/fdx  is also given.
  184.                   After loading the image, the kernel then makes
  185.                   the ramdisk the root device (NOT the floppy).
  186.                   In addition to this, LOADLIN prompts for inserting
  187.                   the ramdisk image into the floppy drive if it no
  188.                   longer needs the drive (i.e. after loading the kernel).
  189.  
  190.   Ramdisk options for new (1.3.x and 2.0.x) kernels
  191.  
  192.   load_ramdisk=1
  193.   --------------
  194.                   This option tells the kernel that you wish to load
  195.                   a ramdisk.  With new Linux kernels, a size does not
  196.                   need to be specified -- the kernel will dynamically
  197.                   allocate the needed memory as the kernel is loaded.
  198.  
  199.   prompt_ramdisk=1
  200.   ----------------
  201.  
  202.                   This option tells the kernel that you wish to be prompted
  203.                   to insert the ramdisk before the kernel tries to load it.
  204.                   Useful when loading the ramdisk from floppy disk.
  205.  
  206.   vga=mode
  207.   --------
  208.         mode      -3  the user is asked to specify the VGA mode
  209.                  ask  equal to -3
  210.                   -2  80x50 extended VGA mode
  211.             extended  equal to -2
  212.                   -1  80x25 normal mode
  213.               normal  equal to -1
  214.                    0  as if "0" was entered at the boot prompt
  215.                    .
  216.                    .
  217.                    n  as if the number "n" was entered at the boot prompt
  218.  
  219.   ro
  220.   --
  221.         "ro" forces the root device to be mounted read-only (Not for UMSDOS!)
  222.  
  223.   rw
  224.   --
  225.         "rw" forces the root device to be mounted read/write.
  226.  
  227. ------------------------------------------------------------------------------
  228.  
  229. Parameters recognized only by the kernel:
  230. =========================================
  231.  
  232.   mem=number
  233.   ----------
  234.         number     End of physical RAM, this is recognized by kernels
  235.                    of 0.99.15 and higher and is useful if the exact
  236.                    installed RAM size cannot be determined automatically.
  237.  
  238.   root=device
  239.   -----------
  240.         device     May be a symbolic device name such as "/dev/hda2"
  241.                    or the numeric device number (highbyte=major, lowbyte=minor)
  242.                    Recognized symbolic devices (with their partitions) are:
  243.                    "hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde",
  244.                    "fd", "xda", "xdb"
  245.                    But NOTE: old kernels < 1.1.47 have xda=0xC00, xdb=0xC40
  246.                              newer kernels have        xda=0xD00, xdb=0xD40
  247.         example:
  248.         root=302
  249.         root=/dev/hda2
  250.  
  251. !!      NOTE:   Older kernels ( below Linux 1.0.5 ) have a little bug in
  252. !!              (init/main.c), but it is of little concern:
  253. !!               The last part of the symbolic device name ("hda2") is
  254. !!               passed as option parameter to  init, so init will
  255. !!               say "illegal option", but continue without errors.
  256. !!
  257. !!              Of greater concern is the too-small static buffer
  258. !!              "command_line" (80 bytes, in init/main.c).   It is
  259. !!              preferable to set it to 512 and recompile the kernel.
  260. !!
  261. !!              This bug is fixed with Linux 1.0.5, the "command_line"
  262. !!              is now 256 by default and (if needed ) can easily be changed
  263. !!              with   #define COMMAND_LINE_SIZE xxxx  in init/main.c  (to a
  264. !!              maximum size of 2047).
  265.  
  266.  
  267.   no387
  268.   -----
  269.         "no387" disables use of the hardware math coprocessor.
  270.  
  271.   since 1.1.47 (or perhaps earlier) the following options are no more
  272.   passed to init:
  273.  
  274.   ro,rw,no387
  275.   -----------
  276.  
  277.  
  278.   the following are new:
  279.  
  280.  
  281.   debug  sets console_loglevel = 10
  282.   -----
  283.  
  284.   no-hlt
  285.   ------
  286.          disables check of HLT instruction at startup.
  287.          If you have a clone 486, this option is *very* usefull.
  288.  
  289. ------------------------------------------------------------------------------
  290.  
  291. Option Parameters recognized by "init":
  292. =======================================
  293.  
  294.   single
  295.   ------
  296.         Enter "single user mode" on boot
  297.  
  298.  
  299.   auto
  300.   ----
  301.  
  302.   ro,rw,no387   (forwarded from kernels < 1.1.47).   (see !!comment!! above)
  303.   -----------
  304.  
  305.  
  306. ------------------------------------------------------------------------------
  307.  
  308.  
  309.  
  310. Configuration of ethernet cards:
  311. ================================
  312.  
  313.   ether=irq,base_addr,mem_start,mem_end,dev_name
  314.   ---------------------------------------------
  315.         irq        number, IRQ-number (3..15)
  316.         base_addr  number, IO-base (0x280,...)
  317.         mem_start  number, shared mem start
  318.         mem_end    number, shared mem end
  319.         dev_name   string,
  320.                         eth0..3     all configured ethernetcards
  321.                         dl0         D-Link DE600 pocket adaptor
  322.                         atp0        AT-LAN-TEC (RealTek) pocket adaptor
  323.                         plip0..2    parallel IP (PLIP)
  324.                         sl0..3      serial IP (SLIP)
  325.         example:
  326.                 ether=10,0x280,0xc8000,0xcbfff,eth0
  327.  
  328.   related files: net/inet/eth.c, drivers/net/Space.c
  329.  
  330. ------------------------------------------------------------------------------
  331.  
  332. Reserving I/O port space:
  333. =========================
  334.  
  335.   reserve=port1,num1,...,port5,num5
  336.   ---------------------------------
  337.  
  338.         portn     first IOport-address in range
  339.         numn      number of addresses in this range to reserve
  340.                   (there will be bits set to "1" in "ioport_register")
  341.  
  342.   related files:  kernel/ioport.c
  343.  
  344.  
  345. ------------------------------------------------------------------------------
  346.  
  347. Setting hard disk parameters for the root device:
  348. =================================================
  349.  
  350.   hd=cyl,head,sect
  351.   ---------------
  352.          # NOTE: if you have two drives, you must put
  353.          #       two hd= params into the commandline
  354.          #       the first for drive 1, the second for drive 2
  355.          #       eg.
  356.          #       loadlin zimage hd=1001,15,17 hd=989,15,56 root=/dev/hdb2 ro
  357.          #       (this example from my machine however is not needed,
  358.          #       you need it only, if Linux can't get the drive params properly
  359.          #       from the BIOS).
  360.   related files: drivers/block/hd.c
  361.   config:        CONFIG_BLK_DEV_HD
  362.  
  363. ------------------------------------------------------------------------------
  364.  
  365. Setting the IRQ for the bus-mouse:
  366. ==================================
  367.  
  368.   bmouse=irq
  369.   ----------
  370.   related files: drivers/char/busmouse.c
  371.   config:        CONFIG_BUSMOUSE
  372.  
  373.  
  374.  
  375. ------------------------------------------------------------------------------
  376.  
  377. Parameters for SCSI controllers:
  378. ================================
  379.  
  380.   max_scsi_luns=n                           (n should be between 1 and 8)
  381.  
  382.   st0x=base_address,irq                     SEAGATE controller ST01/ST02
  383.  
  384.   tmc8xx=base_address,irq                   Future Domain TMC-885,TMC-950
  385.  
  386.   t128=address,irq                          Trantor T128/T128F/T228
  387.  
  388.   ncr5380=port,irq,dma                      Generic NCR5380 driver
  389.  
  390.   aha152x=portbase,irq,scsiid,reconnect     Adaptec AHA-152x driver
  391.  
  392.  
  393.  
  394.   related files: drivers/scsi/seagate.c, t128.c, g_NCR5380.c, aha152x.c
  395.  
  396.   config:        CONFIG_SCSI_SEAGATE, CONFIG_SCSI_T128,
  397.                  CONFIG_SCSI_GENERIC_NCR5380, CONFIG_SCSI_AHA152X
  398.  
  399.  
  400. ------------------------------------------------------------------------------
  401.  
  402. Parameters for SCSI Tapes:
  403. =========================
  404.  
  405.   st=buffer_size,write_threshould,max_buffers
  406.  
  407.      buffer_size       Size of tape buffer in Kbyte (i.e. ST_BLOCK_SIZE)
  408.      write_threshould  Number of Kbytes to buffer before write.
  409.                        (must be < buffer_size)
  410.      max_buffers       Number of buffers to reserve
  411.  
  412.   related files: drivers/scsi/st.c
  413.   config:        CONFIG_CHR_DEV_ST
  414.  
  415. ------------------------------------------------------------------------------
  416.  
  417. Parameter for XT hard disk controller (DTC 5150X):
  418. ==================================================
  419.  
  420.   xd=type,irq,iobase,dma
  421.   ----------------------
  422.  
  423.   related files: drivers/block/xd.c
  424.   config:        CONFIG_BLK_DEV_XD
  425.  
  426. ------------------------------------------------------------------------------
  427. Parameter for Sony CDU-31/33a CDROM driver:
  428. ===========================================
  429.  
  430.   cdu31a=iobase,irq,PAS
  431.   ---------------------
  432.  
  433.   related files: drivers/block/cdu31a.c
  434.                  include/linux/cdu31a.h
  435.   config:        CONFIG_CDU31A
  436.  
  437.   WARNING -    All autoprobes have been removed from the driver.
  438.                You MUST configure the CDU31A via a LILO config
  439.                at boot time or in lilo.conf.  I have the
  440.                following in my lilo.conf:
  441.  
  442.                  append="cdu31a=0x1f88,0,PAS"
  443.  
  444.                The first number is the I/O base address of the
  445.                card.  The second is the interrupt (0 means none).
  446.                The third should be "PAS" if on a Pro-Audio
  447.                spectrum, or nothing if on something else.
  448.  
  449.  
  450. ------------------------------------------------------------------------------
  451. Parameter for Mitsumi CDROM driver:
  452. ===================================
  453.  
  454.   mcd=port,irq
  455.   ------------
  456.  
  457.   related files: drivers/block/mcd.c
  458.   config:        CONFIG_MCD
  459.  
  460.  
  461. ------------------------------------------------------------------------------
  462.  
  463. Parameter for sound cards:
  464. ==========================
  465.  
  466.   sound=0x0TTPPPID, ..
  467.   ----------------
  468.      all values are enbedded in one longint, the above format
  469.      shows a hex number, each place is a hex-digit
  470.  
  471.      TT         Supported card type.
  472.                 This is the index into the list of configured cards
  473.                 If all cards are configured (which normally is not the case)
  474.                 the following order is kept:
  475.                         Roland MPU-401
  476.                         Gravis Ultrasound
  477.                         ProAudio Spectrum
  478.                         SoundBlaster
  479.                         SoundBlaster 16
  480.                         SB16 MPU-401 (SB16-MIDI port)
  481.                         AdLib
  482.  
  483.      PPP        Port Address
  484.  
  485.      I          IRQ
  486.  
  487.      D          DMA Channel
  488.  
  489.  
  490.   related files: drivers/sound/dev_table.h,dev_table.c
  491.   config:        CONFIG_SOUND
  492.  
  493. ------------------------------------------------------------------------------
  494.  
  495. Parameter for IDE-style CD-ROM device driver (Kotobuki/Matsushita/Panasonic):
  496. =============================================================================
  497.  
  498.   sbpcd=sbport,SoundBlaster
  499.   ------------------------
  500.   sbpcd=LMport,LaserMate
  501.   ----------------------
  502.   sbpcd=SpeaFXport,SPEA
  503.   ----------------------
  504.  
  505.         sbport     soundblaster base port +0x10 (i.e 0x230 = 0x220+0x10)
  506.         LMport     MPU-type port at 0x300 or equivalent
  507.         SpeaFXport base port on SpeaFX card
  508.  
  509.   related files: drivers/block/sbpcd.c
  510.   config:        CONFIG_SBPCD
  511.  
  512.  
  513.  
  514. ------------------------------------------------------------------------------
  515.